#include "Nixie.h"
#include "Delay.h"

                          //0   ,1   ,2   ,3   ,4   ,5   ,6   ,7   ,8   ,9   ,A   ,B   ,C   ,D   ,E   ,F   ,NULL
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};

//数码管点亮函数实现
void Nixie(unsigned char Location,unsigned char Number)
{
	switch(Location)
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	switch(Number)
	{
		case 0:P0=NixieTable[0];break;
		case 1:P0=NixieTable[1];break;
		case 2:P0=NixieTable[2];break;
		case 3:P0=NixieTable[3];break;
		case 4:P0=NixieTable[4];break;
		case 5:P0=NixieTable[5];break;
		case 6:P0=NixieTable[6];break;
		case 7:P0=NixieTable[7];break;
		case 8:P0=NixieTable[8];break;
		case 9:P0=NixieTable[9];break;
		case 'A':P0=NixieTable[10];break;
		case 'B':P0=NixieTable[11];break;
		case 'C':P0=NixieTable[12];break;
		case 'D':P0=NixieTable[13];break;
		case 'E':P0=NixieTable[14];break;
		case 'F':P0=NixieTable[15];break;
		default:P0=NixieTable[16];break;
	}
	//消影
	Delay(1);
	P0=0x00;
}